package cn.itsource.ymcc.mapper;

import cn.itsource.ymcc.domain.Course;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author whale.chen
 * @since 2023-02-27
 */
public interface CourseMapper extends BaseMapper<Course> {

    /**
     * 批量保存课程与讲师中间表数据
     *  mapper层接口不允许出现多个参数，最多支持一个参数，因为insert、update、delete、select标签只有一个parameterType属性
     *  如果非要传多个参数：有三种解决办法：
     *      1）可以先在Service层，封装一个实体类对象传进来
     *      2）可以先在Service层，封装一个HashMap对象传进来
     *      3）可以在mapper层方法参数前面添加@Param注解，它的作用就是将方法参数封装成HashMap
     * @param courseId
     * @param teacharIds
     */
    void insertBatchCourseTeacher(@Param("courseId") Long courseId,
                                  @Param("teacharIds") List<Long> teacharIds);

    /**
     * 根据课程id查询该课程的所有讲师id
     * @param courseId
     * @return
     */
    List<Long> selectCourseTeacherIds(Long courseId);
}
